package com.aimei520.service.api;

import java.security.NoSuchAlgorithmException;
import java.util.List;

import com.aimei520.po.admin.Role;
import com.aimei520.po.admin.Url;
import com.aimei520.po.admin.User;
import com.aimei520.po.meun.Menu;

public interface AdminService {
	
	/**
	 * 新增角色
	 * @param role
	 */
	void addRole(Role role,int[] urlids);
	
	/**
	 * 动态sql  根据传去的role对象查询出不一样的值
	 * @param role
	 * @return
	 */
	List<Role> roleList(Role role);
	
	/**
	 * 更新角色
	 * @param role
	 */
	void updateRole(Role role);
	
	/**
	 * 删除角色
	 * @param role
	 */
	void deleteRole(Role role);
	
	
	/***************************/
	/*********  路径管理     ********/
	/***************************/
	
	/**
	 * 新增路径
	 * @param url
	 */
	void addUrl(Url url);
	
	/**
	 * 查询路径列表
	 * @param url
	 * @return
	 */
	List<Url> urlList(Url url);
	
	
	/**
	 * 更新路径
	 * @param url
	 */
	void updateUrl(Url url);
	
	/**
	 * 删除路径 ，其实就是将status标记为1
	 * @param urlId
	 */
	void deleteUrl(int urlId);
	
	/**
	 * 查询所有的一级菜单
	 * @param url
	 * @return
	 */
	List<Url> headUrlList();
	
	/**
	 * 将查询出来的所有权限  生成菜单树，用于展示权限列表 
	 * @param url
	 * @return
	 */
	List<Menu> urlList(int roleId);
	
	/**
	 * 更改角色的权限
	 * @param role
	 * @param urlids
	 */
	void updateRoleAccess(Role role,int[] urlids);
	
	/*****************用户管理****************/
	/**
	 * 增
	 * @param user
	 */
	void addUser( User user )throws NoSuchAlgorithmException;
	
	/**
	 * 查多个
	 * @param user
	 * @return
	 */
	List<User> userList(User user);
	
	/**
	 * 查单个
	 * @param id
	 * @return
	 */
	User user_byId(int id);
	
	/**
	 * 改
	 * @param user
	 */
	void updateUser(User user)throws NoSuchAlgorithmException;
	
	/**
	 * 删  
	 * @param id
	 */
	void deleteUser(int id);
	
}
